Methods And Apparatuses For Using Image Acquisition Data To Detect And Correct Image Defects

ABSTRACT

A method and device for detecting a potential defect in an image comprises acquiring a digital image at a time; storing image acquisition data, wherein the image acquisition data includes at least one of a position of a source of light relative to a lens, a distance from the source of light to the lens, a focal length of the lens, a distance from a point on a digital image acquisition device to a subject, an amount of ambient light, or flash intensity; determining dynamic anthropometric data, wherein the dynamic anthropometric data includes one or more dynamically changing human body measurements, of one or more humans represented in the image, captured at the time; and determining a course of corrective action based, at least in part, on the image acquisition data and the dynamic anthropometric data.

PRIORITY CLAIMS AND RELATED APPLICATIONS

This application claims domestic priority from prior U.S. Provisional Patent Application Ser. No. 61/024,551, filed on Jan. 30, 2008, titled “METHODS AND APPARATUSES FOR EYE GAZE MEASUREMENT,” the entire disclosure of which is hereby incorporated by reference for all purposes as if fully set forth herein.

FIELD OF THE INVENTION

The present disclosure relates generally to digital image processing and more particularly to error correction in digital photographs.

BACKGROUND OF THE INVENTION

The approaches described in this section are approaches that could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.

The flashes on many portable cameras can cause undesirable defects in captured images. One of the most common defects is a “Red-eye” phenomenon where a flash is reflected within a subject's eye and appears in a photograph as a red dot where the black pupil of the subject's eye would normally appear. The unnatural glowing red of an eye is due to internal reflections from the vascular membrane behind the retina, which is rich in blood vessels. This undesired defect is well understood to be caused in part by a small angle between the flash of the camera and the lens of the camera. Due to the miniaturization of cameras with integral flash capabilities, the phenomenon can be quite pronounced in many of today's smaller, portable cameras.

The red-eye defect can be minimized by causing the iris to reduce the opening of the pupil, such as with a “pre-flash,” which involves a flash or illumination of light shortly before a flash photograph is taken causing the iris to close. Unfortunately, the pre-flash occurs 0.2 to 0.6 seconds prior to the flash photograph, which is a readily discernible time period within the reaction time of a human subject. Consequently, the subject may believe the pre-flash is the actual photograph and be in a less than desirable position at the time of the actual photograph, or the subject might be informed of the photograph by the pre-flash, typically loosing any spontaneity of the subject that could be captured in the photograph. Therefore, the use of a pre-flash, while somewhat helpful in reducing the red-eye phenomenon, can negatively affect images in other ways.

With the advent of digital cameras and digital image software on computers, techniques for eliminating flash-induced eye defects by processing a captured image with microprocessor-based devices, either external to a camera or built into a camera, have become common place. Most of the algorithms executed by the microprocessor-based devices are quite rudimentary. For example, a common defect removal algorithm involves looking at a digital image for pixels within a color spectrum that form a shape within a range of shapes to identify defect candidates. Techniques exist for narrowing the color spectrum and narrowing the shape range that algorithms use to identify potential defects candidates, but those existing techniques are very limited, and in many cases, are as likely to cause a true-positive to be missed as they are to cause a false-positive to be avoided because such techniques do not account for the physiological variations in human eyes or the conditions under which the image was captured. Therefore, there exists in the art a need for improved flash-induced eye defect detection and correction algorithms.

BRIEF DESCRIPTION OF THE DRAWINGS Statement Regarding Color Drawings

The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.

FIGS. 1 a-d show examples of common flash-induced eye defects that can occur in captured digital images.

FIG. 2 shows a flow chart illustrating a method embodying aspects of the present invention.

FIGS. 3 a and 3 b illustrate two possible configurations for portable digital image acquisition devices.

FIGS. 4 a-b show variations of half-red eye defects.

FIG. 5 shows the various half-red eye phenomenon that occur when a flash is to the right of a lens, to the left of a lens, to the bottom of a lens, to the top of the lens, to the top right of the lens, to the top left of the lens, to the bottom left of the lens, or to the bottom right of the lens.

FIGS. 6 a-b show common color spectrums for red-eye defects for flash-to-lens distances of 2 cm and 5 cm.

FIG. 7 shows a plot of pupil size as a function of ambient lighting.

FIGS. 8 a-c show eyes with various degrees of eye gaze.

FIG. 9 shows the eye gaze angles for an eye pair.

FIG. 10 is a block diagram of a portable image acquisition device.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.

Overview

FIGS. 1 a-d show examples of common flash-induced eye defects that can occur in captured digital images. FIG. 1 a shows a digital image where an eye is displaying the red-eye phenomenon. FIG. 1 b shows a digital image where an eye is displaying golden-eye phenomenon. FIG. 1 c shows a digital image where an eye is displaying a half-red eye phenomenon. FIG. 1 d shows a digital image where one eye is displaying a red-eye phenomenon, and the other eye is displaying a golden-eye phenomenon. Aspects of the present invention relate to improving algorithms for removing these defects from captured digital images.

U.S. Pat. No. 7,352,394, filed oil Feb. 4, 2004, titled “IMAGE MODIFICATION BASED ON RED-EYE FILTER ANALYSIS,” discusses techniques for removing defects like those shown in FIGS. 1 a-d from digital images. The entire disclosure of U.S. Pat. No. 7,352,394 is hereby incorporated by reference for all purposes as if fully set forth herein

Techniques of the present invention include storing image acquisition data when an image is captured or acquired and using the image acquisition data in determining how to correct potential defects like the ones illustrated in FIGS. 1 a-d. Examples of image acquisition data can include the position of the flash relative to the lens, the distance from the flash to the lens, a focal length of the lens, the distance from a point on the image acquisition device to a subject being photographed, an amount of ambient light, and flash intensity. The image acquisition data can be used in determining a course of action for how to process the image after capture. For example, image acquisition data corresponding to a certain acquisition condition, such as large ambient light for example, might determine which subset of algorithms from a plurality of defect correction algorithms to apply to a certain image or might determine parameters to be used by a certain defect correction algorithm.

Further techniques of the present invention can include using image acquisition data to determine dynamic anthropometric data to determine which subset of algorithms from a plurality of defect correction algorithms to apply to a certain image or to determine parameters to be used by a certain defect correction algorithm. Further techniques of the present invention can also include using image acquisition data in conjunction with dynamic anthropometric data to determine which subset of algorithms from a plurality of defect correction algorithms to apply to a certain image or to determine parameters to be used by a certain defect correction algorithm.

FIG. 2 shows a flow chart illustrating a method embodying aspects of the present invention. The method comprises capturing a digital image (block 210) with a portable digital image acquisition device such as a camera or smartphone. The method further comprises storing image acquisition data associated with the captured digital image (block 220) and determining dynamic anthropometric data associated with the captured image (block 230). The dynamic anthropometric data can be derived from the image acquisition data, determined from the content of the acquired digital image, or determined in any other manner known in the art. Based on the image acquisition data and dynamic anthropometric data, whether and how to perform corrective action on the digital image can be determined (block 240).

One potential embodiment of the present invention can include one or more processor-readable media having embedded code therein for programming a processor to perform a method including the steps of acquiring a digital image at a time, storing image acquisition data describing a condition at the time, determining an eye gaze angle in the digital image, and determining a course of corrective action based, at least in part, on the image acquisition data and the eye gaze angle.

Another potential embodiment of the present invention can include one or more processor-readable media having embedded code therein for programming a processor to perform a method including the steps of detecting a value indicative of ambient light at a time when the image is acquired, storing the value in association with the image, and determining whether a course of action based, at least in part, on the value.

Another potential embodiment of the present invention can include one or more processor-readable media having embedded code therein for programming a processor to perform a method including the steps of storing a value indicative of a position of a source of light relative to a lens, using the value to identify an expected orientation for a half-red eye defect, and identifying defect candidates in the image at least in part based on the expected orientation.

Another potential embodiment of the present invention can include one or more processor-readable media having embedded code therein for programming a processor to perform a method including the steps of acquiring a digital image at a time; storing image acquisition data, wherein the image acquisition data includes at least one of a position of a source of light relative to a lens, a distance from a source of light to the lens, a focal length of the lens, a distance from a point on a digital image acquisition device to a subject, an amount of ambient light, or flash intensity; determining dynamic anthropometric data, wherein the dynamic anthropometric data includes one or more dynamically changing human body measurements, of one or more humans represented in said image, captured at said time; and, determining a course of corrective action based, at least in part, on the image acquisition data and the dynamic anthropometric data.

Other potential embodiments of the present invention include a portable digital image acquisition device comprising a lens, a digital imaging capturing apparatus, a source of light for providing illumination during image capture, and logic for performing operations stored on processor-readable media having embedded code therein for programming a processor to perform a method.

Image Acquisition Data

Techniques of the present invention include storing, such as in a memory on a portable digital acquisition device, various types of image acquisition data associated with a captured digital image. The image acquisition data can be stored, for example, as metadata associated with an image file. Examples of image acquisition data include but are not necessarily limited to the position of the flash relative to the lens, the distance of the flash from the lens, a focal length of the lens, the distance to a subject being photographed, amount of ambient light, and flash intensity.

One type of image acquisition data that can be stored is the position of a flash relative to the lens that captures a digital image. FIGS. 3 a and 3 b illustrate two possible configurations for portable digital image acquisition devices 300 a-b. In the portable digital image acquisition device 300 a of FIG. 3 a, the flash 301 a is positioned to the side of the lens 302 a whereas in the portable digital image acquisition device 300 b of FIG. 3 b, the flash 301 b is positioned directly above the lens 302 b. When the portable digital acquisition devices of FIGS. 300 a-b are rotated 90 degrees, when taking a profile picture for example, the flash 301 a in FIG. 3 a will be below the lens 302, and the flash 301 b in FIG. 3 b will be to the side of the lens 302 b. As will be discussed in more detail later, knowing the relative position of the lens to the flash can help identify particular types of eye defect phenomenon. For example, a flash positioned to the side of the lens is more likely to produce a half-red eye phenomenon like the one of FIG. 4 a, whereas a flash positioned above the lens is more likely to produce a half-red eye phenomenon like the one shown in FIG. 4 b.

Another type of image acquisition data that can be stored is the distance between the lens and the flash. For example, in FIG. 3 a, the distance between the lens 302 a and flash 301 a is shown by dotted line 303 a, and in FIG. 3 b, the distance between the lens 302 b and flash 301 b is shown by dotted line 303 b. Depending on the configuration of the particular device executing the various defect correction algorithms, the distance between the flash and lens may be constant, in which case the distance can be stored by a device designer without needing to be dynamically calculated with every image acquisition. In other portable digital acquisition devices that have movable lenses or flashes or connection mechanisms for external lenses or flashes, then the distance may be dynamically calculated with every image acquisition.

Another type of image acquisition data that can be stored is ambient lighting as measured by the portable digital image acquisition device at the time a photo is taken. The measurement can be performed by a light sensor such as a charge-coupled device (CCD) sensor or complimentary metal-oxide semiconductor (CMOS) sensor that can transform light information into electronic coding, such as a value indicative of a light value or an exposure value.

Another type of image acquisition data that can be stored is the focal length of a lens. Most digital image acquisition devices have lenses with variable focal lengths. Techniques of the present invention include storing a value indicative of focal length to be used in post-capture image analysis. Another type of image acquisition data that can be stored is the distance between a point on portable digital acquisition device, such as a lens, and a subject being photographed. Most digital image acquisition devices include distance analyzers for use with automatic focusing mechanisms. Techniques of the present invention include storing a value indicative of the distance between a point on the device and a subject to be used in post-capture image analysis.

Using Image Acquisition Data to Determine which Defect Phenomenon to Look For

Techniques of the present invention include using image acquisition data to aid in determining what defect phenomenon to look for. Acquisition data indicating the position of a flash relative to the lens, for example, can be used to determine the orientation of certain defects. For example, if a flash is located above a lens then the yellowish part of a half-red eye will be the lower part of the eye, and vice versa. If a flash is located to the left of a lens, then the yellowish part of the half-red eye will be the right part of the eye, and vice versa. FIG. 5 shows the various half-red eye phenomenon that occur when a flash is to the right of a lens (501), to the left of a lens (502), to the bottom of a lens (503), to the top or the lens (504), to the top right of the lens (505), to the top left of the lens (506), to the bottom left of the lens (507), or to the bottom right of the lens (508).

This information can be used to determine the expected red-yellow gradient of a half-red eye, which can be used to reduce the detection of false positives. Algorithms exist that detect half-red eyes by detecting yellow/red color groupings of pixels that form a certain shape, and thus are indicative of a half-red eye. The red-yellow gradient of a grouping indicative of a half-red eye can be compared to the expected red-yellow gradient to identify false positives. For example, if detected groupings have left-to-right or top-to-bottom red-yellow gradients but the expected red-yellow gradient is right-to-left, then the groups with non-right-to-left gradients can be identified as non-half-red eyes, and thus not be altered. The detected groupings that do have a right-to-left red-yellow gradient can undergo an image alteration to correct the defect.

Techniques of the present invention further include using image acquisition data to determine the color spectrum of a potential defect. For example, the distance between the lens and flash impacts the color spectrum of red-eye defects. FIG. 6 a shows a common color spectrum for red-eye defects for flash-to-lens distances of 2 cm, and FIG. 6 b shows the resultant defects in captured images for flash-to-lens distances of 5 cm. By knowing the spectrum of colors to expect for a particular defect, algorithms can be refined. For example, in a red-eye removal algorithm configured to look for a spectrum of colors in a range of shapes, the spectrum of colors looked for can be narrowed based on the image acquisition data, thus reducing the number of false positives.

Using Image Acquisition Data to Determine Dynamic Anthropometric Data

Anthropometry is generally defined as the study of human body measurement for use in anthropological classification and comparison. Static anthropometric data, such as the ratio of eye width to eye separation or the ratio of eye size to head size, can provide good indication as to whether an object is an eye, based on analysis of other detected human objects in the image. Much anthropometric data, however, is dynamic and will change depending on the conditions under which an image is captured. For example, pupil size is not constant and changes as a function of light, and eye gaze changes based on how a subject rotates its eyes.

Techniques of the present invention include using image acquisition data to estimate or determine dynamic anthropometric data, such as pupil size. Pupil size can be reasonably estimated based on image acquisition data describing ambient light conditions at the time the image was captured. It is known that pupil size varies as a function of the amount of light in the field of view of the subject. FIG. 7 shows a plot illustrating an example of that variation. Relationship data between a detected value indicative of ambient light and an estimated pupil size can be stored on a digital image acquisition device so that if an amount of ambient light is known, an estimated on-subject pupil size can be determined.

The estimated size of the on-subject pupil can then be implemented into defect correction algorithms in a variety of manners. For example, flash-induced eye defects are due to light originating from a flash bouncing off the retina and reaching the lens. Thus, if the angle between the flash, retina, and lens is small enough, the light cannot reach the lens and no eye defects appear. This typically happens when the subject is very close to the camera or the subject's pupil is very constricted. Flash-induced defects seldom appear in broad daylight in part because the retina is highly constricted. Techniques of the present invention include using this fact in detecting and correcting flash-induced eye defects. Although the critical angle varies slightly with certain physiological characteristics such as eye color, normal upper limits for healthy adults can be estimated. For example, an upper limit for Caucasians might be approximately 3 degrees. For a given on-subject pupil size and flash to lens distance, there exists a minimum distance (also referred to as a critical distance) between the camera and the subject for which a defect in the eye might appear. Using basic geometrical calculus, die following formula can be used to calculate a c critical distance.

CriticalDistance=(FlashLensDistance−OnSubjPupilSize)/[2a tan(critical angle/2)]

As discussed above, FlashLensDistance is the distance between the flash and lens which can be either stored by a device designer or calculated dynamically at the time of image capture. Using the estimated critical angle and estimated oil-subject pupil size, a critical distance can be calculated. Based, at least in part, on the critical distance and the distance between the lens and subject, a course of action can be determined. For example, if the value for the distance between the lens and the subject stored in the image acquisition data is less than a threshold value for the determined critical distance, then no defect correction algorithms need to be applied to the captured image. Not executing an unneeded defect correction algorithm saves a user time, reduces shot-to-shot time, and reduces power consumption. Not executing an unneeded defect correction algorithm further eliminates any chance of the algorithm identifying a false positive and altering a portion of an image that should not be altered.

Dynamic anthropometric data relating to on-subject pupil size can also be used with other image acquisition data, such as lens focal length, to determine an estimate of in-image pupil size. The estimated in-image pupil size can then be used in algorithms that set a maximum defect size. Many algorithms utilize maximum expected defect sizes to aid in determining if a candidate defect is an actual defect or a false positive. A candidate defect otherwise indicative of a flash-induced defect will not be altered if the candidate defect is greater in size than the maximum expected defect size on the assumption that the candidate defect is not actually depicting a human eye or portion of an eye such as a pupil. Most devices utilize absolute maximums so that all possible situations are covered, and defects are not missed. An estimated in-image pupil size determined by anthropometric data and image acquisition data as described in one embodiment of the present invention allows that absolute maximum to be decreased based on conditions when the image was captured, thus significantly reducing the number of false positives detected by a particular defect correction algorithm without reducing the number of true positives detected by the defect correction algorithm.

Using Image Acquisition Data in Conjunction with Eye Gaze Measurements

Techniques of the present invention further include using image acquisition data combined with other determined dynamic anthropometric data, such as eye-gaze measurements, to determine the likelihood that a certain type of defect will be present. Eye gaze can be measured, for example, by superimposing Active Appearance Models (AAMs) onto a detected face region. From the AAMs eye rotation and facial rotation can be measured to determine a total eye gaze. This eye-gaze information can provide advantageous information, particularly with respect to applying red-eye filters to an image, or reconciling differences between two paired red-eye candidates.

Different regions of the eye can cause different types of defects. For example, the retina which contains large amounts of blood vessels is likely to cause a red-eye defect, whereas other regions, not containing blood vessels, might be likely to cause a white or yellow-eye defect. By determining the gaze angle of an eye, the region of the eye that will reflect light back to a lens during image capture can be determined. Armed with that information, it can be determined whether a red-eye filter should or should not be applied, whether a filter in addition to a red-eye filter should be applied, etc.

FIG. 8 a illustrates the normal case where the eye-gaze is directly into a lens and the flash enters the eye at a slight angle, stimulating the blood vessels of the retina, thus creating a condition that could cause a red-eye defect. FIG. 8 b shows the axis of the eye aligned directly with the flash, with the subject' eye-gaze being slightly to the left (from the image acquisition device's perspective) but as the flash falls directly on the back of the retina, the flash still stimulates the retinal blood vessels potentially leading to a red-eye defect. In FIG. 8 c the gaze angle extends a further few degrees to the left, and the flash is now directly incident on the blind spot region or the eye as opposed to the retinal region

The blind spot tends to be off-axis by a number of degrees and causes a different type of defect than the retina. A more precise calculation of the relationship between the measured eye-gaze angle, the blind-spot offset, and the distance of the subject from the camera is given in FIG. 9.

The blind-spot offset is A2, which can be constant for a particular person, can be estimated based on average values. The eye-gaze angle is A1, and the distance to subject is D. The separation between flash and camera lens is S (not shown). Values for S and D can be obtained from stored image acquisition data.

${\tan \left( {A_{1} - A_{2}} \right)} = \frac{S}{D}$

and thus:

${A_{1} - A_{2}} = {\tan^{- 1}\left( \frac{S}{D} \right)}$

or the eye-gaze angle, A1, is related to S, D and A2 as:

$A_{1} = {{\tan^{- 1}\left( \frac{S}{D} \right)} + A_{2}}$

A table of example values for the tan⁻¹(S/D) term is given below, where the tan⁻¹(S/D) term represents the Angular contribution (in degrees) of the lens-to-flash distance to the eye-gaze angle.

D S = 0.025 m S = 0.05 S = 0.075 S = 0.15 1 metre 1.43 2.86 4.29 8.53 2 metre 0.72 1.43 2.15 4.29 3 metre 0.48 0.95 1.43 2.86

By combining the image acquisition data with a measurement of eye gaze, it can be determined when to apply filters of a certain type. For example, if an eye gaze measurement and image acquisition data indicate that a flash is likely to impact in a region other than the retina because the total eye gaze is greater than a certain amount, then additional yellow-eye or golden-eye filters might be applied to compliment standard red-eye Filters. Eye gaze measurements may be performed on the main acquired image, or on a sequence of preview images (in order to predict or refine the eye gaze measurement on the main image).

Techniques of the present invention further include using eye gaze measurements to assist in the analysis of flash-eye pairs where one eye experiences a first defect and the second eye experiences a different defect. The reasons for this can be seen from FIG. 9 which shows that the eye gaze angles (A1 and A3) for an eye pair are somewhat different because of the distance separating the two eyes. A difference of more than 1-2 degrees in eye gaze angle can cause different forms of defects to occur in each eye of the eye-pair. By using an eye gaze measurement and image acquisition data to predict whether a pair of eyes should both experience a red-eye defect, neither experience a red-eye defect, or one experience a red-eye defect and the other experience something else, defect detection algorithms can be improved to eliminate false positives. For example, if an algorithm detects a candidate pair of eyes where both are indicative of a red-eye defect, but the eye gaze angle and image acquisition data indicate that neither eye or only one eye should experience a red-eye defect, then the candidate pair can be identified as a false positive without incorrectly altering the image. The eye gaze measurement can be used either instead of or in conjunction with other image processing techniques including other techniques mentioned in this disclosure.

Implementation Mechanisms—Hardware Overview

FIG. 10 is a block diagram that illustrates an image acquisition device 1000 upon which an embodiment of the invention may be implemented. The image acquisition device 1000 can include an image capture apparatus 1020 comprising a lens 1022 and a source of light for providing illumination during image capture 1024. The image capture apparatus 1020 can further comprise distance analyzer 1028 for determining a distance between a point on the device 1000 and a subject. The image capture apparatus 1020 can further comprise a light sensor 1026 that can be, for example a CCD, CMOS or any other object that transforms light information into electronic encoding. The image capture apparatus 1020 can further comprise a mechanism 1029 for monitoring parameters of the lens 1022 during image acquisition. Relevant parameters of the lens during acquisition can include the aperture or an f-stop, which primarily determines the depth of field, the focal length which determines the enlargement of the image, and the focusing distance which determines the distance to the objects at which the lens 1022 was focused.

The image acquisition device 1000 may be contained within a single device, such as a lens connected to a personal computer, a portable camera, a smartphone, a video camera with still image capturing capability, etc. Alternatively, various portions of the image acquisition device 1000 might be distributed between multiple devices, such as having some components on a personal computer and some components on a portable digital camera. Image acquisition device 1000 includes a bus 1002 or other communication mechanism for communicating information, and a processor 1004 coupled with bus 1002 for processing information. Image acquisition device 1000 also includes a main memory 1006, such as a random access memory (“RAM”) or other dynamic storage device, coupled to bus 1002 for storing information and instructions to be executed by processor 1004. Main memory 1006 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1004. Image acquisition device 1000 further includes a read only memory (“ROM”) 1008 or other static storage device coupled to bus 1002 for storing static information and instructions for processor 1004. A storage device 1010, such as a magnetic disk or optical disk, is provided and coupled to bus 1002 for storing information and instructions.

Image acquisition device 1000 may be coupled via bus 1002 to a display 1012, such as a liquid crystal display (LCD), for displaying information or images to a user. An input device 1014, including keys, is coupled to bus 1002 for communicating information and command selections to processor 1004. Other types of user input devices, for example cursor controllers 1016 such as a mouse, trackball, stylus, or cursor direction keys for communicating direction information and command selections to processor 1004 can also be used for controlling cursor movement on display 1012 for communicating information and command selections to processor 1004.

The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor 1004 for execution. Such a medium may take many forms, including but not limited to non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1010. Volatile media includes dynamic memory, such as main memory 1006.

Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. Any single type or combination of computer-readable media can be used for storing instructions that, when executed by one or more processors, cause the processors to carry out steps corresponding to the techniques of the present invention.

Extensions and Alternatives

In this description certain process steps are set forth in a particular order, and alphabetic and alphanumeric labels may be used to identify certain steps. Unless specifically stated in the description, embodiments of the invention are not necessarily limited to any particular order of carrying out such steps. In particular, the labels are used merely for convenient identification of steps, and are not intended to specify or require a particular order of carrying out such steps.

In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. 

1. A portable digital image acquisition device comprising: a lens; a digital imaging capturing apparatus; a source of light for providing illumination during image capture; logic for performing the following operations: acquiring a digital image at a time; storing image acquisition data describing a condition at the lime; determining an eye gaze angle in the digital image; determining a course of action based, at least in part, on the image acquisition data and the eye gaze angle.
 2. The portable digital acquisition device of claim 1 wherein the logic includes one or more processors executing software instructions.
 3. The portable digital image acquisition device of claim 1 further comprising logic for determining whether the eye gaze angle is greater than a value, wherein the course of action comprises performing at least one of the following operations responsive to determining that the eye gaze angle is greater than the value: analyzing the image to identify yellow-eye defect candidates; or analyzing the image to identify golden-eye defect candidates.
 4. The portable digital image acquisition device of claim 3, wherein: the image acquisition data comprises a distance from the portable image acquisition device to a subject, and a separation between the source of light and a lens; and the value is determined based, at least in part, on the distance and the separation.
 5. The portable digital image acquisition device of claim 1 further comprising logic for determining whether the eye gaze angle is less than a value, wherein the course of action comprises analyzing the image to identify red-eye defect candidates responsive to determining that the eye gaze angle is less than the value.
 6. The portable digital image acquisition device of claim 1 further comprising logic for determining whether the eye gaze angle is greater than a value, wherein the course of action comprises analyzing the image to identify flash-eye defect candidates other than red-eye defect candidates responsive to determining that the eye gaze angle is greater than the value.
 7. The portable digital image acquisition device of claim 1, further comprising logic for: identifying a pair of eyes in the image, the pair of eyes including a first eye and a second eye; determining that the eye gaze angle of the first eye indicates that it is likely that a first type of defect exists; determining that the eye gaze angle of the second eye indicates that it is likely that a second type of defect exists; analyzing the image to determine whether the image contains the first type of defect; and analyzing the image to determine whether the image contains the second type of defect.
 8. The portable digital image acquisition device of claim 1 wherein: storing image acquisition data describing a condition at the time includes: detecting a value indicative of ambient light at the time; and storing the value; the portable digital image acquisition device includes logic for associating the value with the image; determining a course of action at least in part based on the value.
 9. The portable digital image acquisition device of claim 8 further comprising logic for determining whether the value is greater than a threshold value, wherein the course of action comprises not altering the digital image if the value is greater than the threshold value.
 10. The portable digital image acquisition device of claim 8 further comprising logic for determining whether the value is less than a threshold value, wherein the course of action comprises analyzing the image to identify flash-eye defect candidates if the value is less than the threshold value.
 11. The portable digital image acquisition device of claim 8, further comprising logic for: determining a second value indicative of a distance between an image capture apparatus and a subject; storing the second value; using the value to determine an on-subject pupil size; using the on-subject pupil size and the second value to determine a critical distance; determining whether to perform connective action on the image based, at least in part, on the critical distance.
 12. The portable digital image acquisition device of claim 8, further comprising logic for: determining a second value indicative of a distance between an image capture apparatus and a subject; determining a third value indicative of a lens focal length; storing the second value and the third value; using the value, the second value, and the third value to determine an in-image pupil size; and identifying defects in the image based at least in part on the in-image pupil size.
 13. The portable digital image acquisition device of claim 1, further comprising logic for: storing a value indicative of a position of the source of light relative to the lens; using the value to identify an expected orientation for a half-red eye defect; and identifying defect candidates in the image based, at least in part, on the expected orientation.
 14. One or more processor-readable media having embedded code therein for programming a processor to perform a method comprising: acquiring a digital image at a time; storing image acquisition data describing a condition at the time; determining an eye gaze angle in the digital image; and determining a course of action based, at least in part, on the image acquisition data and the eye gaze angle.
 15. The one or more media of claim 14 further comprising embedded code therein for programming a processor to perform a method comprising determining whether the eye gaze angle is greater than a value, wherein the course of action comprises performing at least one of the following operations responsive to determining that the eye gaze angle is greater than the value: analyzing the image to identify yellow-eye defect candidates; or analyzing the image to identify golden-eye defect candidates.
 16. The one or more media of claim 15, wherein: the image acquisition data comprises a distance from the portable image acquisition device to a subject, and a separation between a source of light and a lens; and the value is determined based, at least in part, on the distance and the separation.
 17. The one or more media of claim 14 further comprising embedded code therein for programming a processor to perform a method comprising: determining whether the eye gaze angle is less than a value, wherein the course of action comprises analyzing the image to identify red-eye defect candidates responsive to determining that the eye gaze angle is less than the value.
 18. The one or more media of claim 15, further comprising embedded code therein for programming a processor to perform a method comprising: identifying a pair of eyes in the image, the pair of eyes including a first eye and a second eye; determining that the eye gaze angle of the first eye indicates that it is likely that a first type of defect exists; determining that the eye gaze angle of the second eye indicates that it is likely that a second type of defect exists; analyzing the image to determine whether the image contains the first type of defect; and analyzing the image to determine whether the image contains the second type of defect.
 19. The one or more media of claim 14 wherein: storing image acquisition data describing a condition at the time includes: detecting a value indicative of ambient light at the time; and storing the value; the portable digital image acquisition device includes logic for associating the value with the image; determine a course of action at least in part based on the value.
 20. The one or more media of claim 19, further comprising embedded code therein for programming a processor to perform a method comprising: determining a second value indicative of a distance between an image capture apparatus and a subject; storing the second value; using the value to determine an on-subject pupil size; using the on-subject pupil size and the second value to determine a critical distance; determining whether to perform corrective action on the image based, at least in part, on the critical distance.
 21. The one or more media of claim 19, further comprising embedded code therein for programming a processor to perform a method comprising: determining a second value indicative of a distance between an image capture apparatus and a subject; determining a third value indicative of a lens focal length; storing the second value and the third value; using the value, the second value, and the third value to determine an in-image pupil size; and identifying defects in the image based at least in part on the in-image pupil size.
 22. The one or more media of claim 14, further comprising embedded code therein for programming a processor to perform a method comprising: storing a value indicative of a position of a source of light relative to a lens; using the value to identify an expected orientation for a half-red eye defect; and identifying defect candidates in the image based, at least in part, on the expected orientation.
 23. One or more processor-readable media having embedded code therein for programming a processor to perform a method comprising: detecting a value indicative of ambient light at a time when the image is acquired; storing the value in association with the image; determining a course of action based, at least in part, on the value.
 24. The one or more media of claim 23 further comprising embedded code therein for programming a processor to perform a method comprising: determining whether the value is greater than a threshold value, wherein the course of action comprises not altering the digital image if the value is greater than the threshold value.
 25. The one or more media of claim 23 further comprising embedded code therein for programming a processor to perform a method comprising: determining whether the value is less than a threshold value, wherein the course of action comprises analyzing the image to identify flash-eye defect candidates if the value is less than the threshold value.
 26. The one or more media of claim 23, further comprising embedded code therein for programming a processor to perform a method comprising: determining an on-subject pupil size based, at least in part, on the value; determining whether to perform a corrective action based, at least in part, on the on-subject pupil size.
 27. The one or more media of claim 23, further comprising embedded code therein for programming a processor to perform a method comprising: determining an on-subject pupil size based, at least in part, on the value; determining a second value indicative of a distance between an image capture apparatus and a subject; storing the second value; determining a critical distance based, at least in part, on the on-subject pupil size and the second value; determining whether to perform corrective action on the image based, at least in part, on the critical distance.
 28. The one or more media of claim 23, further comprising embedded code therein for programming a processor to perform a method comprising: determining a second value indicative of a distance between an image capture apparatus and a subject; determining a third value indicative of a lens focal length; storing the second value and the third value; determining an in-image pupil size based, at least in part, on the value, the second value, and the third value; identifying defects in the image based, at least in part, on the in-image pupil size.
 29. The one or more media of claim 28, wherein the step of identifying defects includes searching the image only for defects that are the same size as, or smaller, than the in-image pupil size.
 30. One or more processor-readable media having embedded code therein for programming a processor to perform a method of detecting a potential defect in an image, the method comprising: storing a value indicative of a position of a source of light relative to a lens; using the value to identify an expected orientation for a half-red eye defect; identifying defect candidates in the image at least in part based on the expected orientation.
 31. One or more processor-readable media having embedded code therein for programming a processor to perform a method of detecting a potential defect in an image, the method comprising: acquiring a digital image at a time; storing image acquisition data, wherein the image acquisition data includes at least one of a position of a source of light relative to a lens, a distance from a source of light to the lens, a focal length of the lens, a distance from a point on a digital image acquisition device to a subject, an amount of ambient light, or flash intensity; determining dynamic anthropometric data, wherein the dynamic anthropometric data includes one or more dynamically changing human body measurements, of one or more humans represented in said image, captured at said time; determining a course of corrective action based, at least in part, on the image acquisition data and the dynamic anthropometric data.
 32. The one or more media of claim 31, wherein the anthropometric data comprises an eye gaze angle determined from content of the digital image.
 33. The one or more media of claim 31, wherein the anthropometric data comprises pupil size, wherein the pupil size is derived from the image acquisition data, and wherein the image acquisition data comprises a value indicative of ambient light.
 34. A portable digital image acquisition device comprising: a lens; a digital imaging capturing apparatus; a source of light for providing illumination during image capture; logic for performing the following operations: detecting a value indicative of ambient light at a time when the image is acquired; storing the value in association with the image; determining a course of action based, at least in part, on the value.
 35. The portable digital image acquisition device of claim 34 further comprising logic for determining whether the value is greater than a threshold value, wherein the course of action comprises not altering the digital image if the value is greater than the threshold value.
 36. The portable digital image acquisition device of claim 34 further comprising logic for determining whether the value is less than a threshold value, wherein the course of action comprises analyzing the image to identify flash-eye defect candidates if the value is less than the threshold value.
 37. The portable digital image acquisition device of claim 34 further comprising logic for: determining an on-subject pupil size based, at least in part, on the value; determining whether to perform a corrective action based, at least in part, on the on-subject pupil size.
 38. The portable digital image acquisition device of claim 34 further comprising logic for: determining an on-subject pupil size based, at least in part, on the value; determining a second value indicative of a distance between an image capture apparatus and a subject; storing the second value; determining a critical distance based, at least in part, on the on-subject pupil size and the second value; determining whether to perform corrective action on the image based, at least in part, on the critical distance.
 39. The portable digital image acquisition device of claim 34 further comprising logic for: determining a second value indicative of a distance between an image capture apparatus and a subject; determining a third value indicative of a lens focal length; storing the second value and the third value; determining an in-image pupil size based, at least in part, on the value, the second value, and the third value; identifying defects in the image based, at least in part, on the in-image pupil size.
 40. The portable digital image acquisition device of claim 39, wherein the step of identifying defects includes searching the image only for defects that are the same size as, or smaller, than the in-image pupil size.
 41. A portable digital image acquisition device comprising: a lens; a digital imaging capturing apparatus; a source of light for providing illumination during image capture; logic for performing the following operations: storing a value indicative of a position of a source of light relative to a lens; using the value to identify an expected orientation for a half-red eye defect; identifying defect candidates in the image at least in part based on the expected orientation.
 42. A portable digital image acquisition device comprising: a lens; a digital imaging capturing apparatus; a source of light for providing illumination during image capture; logic for performing the following operations: acquiring a digital image at a time; storing image acquisition data, wherein the image acquisition data includes at least one of a position of a source of light relative to a lens, a distance from a source of light to the lens, a focal length of the lens, a distance from a point on a digital image acquisition device to a subject, an amount of ambient light, or flash intensity; determining dynamic anthropometric data, wherein the dynamic anthropometric data includes one or more dynamically changing human body measurements, of one or more humans represented in said image, captured at said time; determining a course of corrective action based, at least in part, on the image acquisition data and the dynamic anthropometric data.
 43. The one or more media of claim 42 wherein the anthropometric data comprises an eye gaze angle determined from content of the digital image.
 44. The one or more media of claim 42, wherein the anthropometric data comprises pupil size, wherein the pupil size is derived from the image acquisition data, and wherein the image acquisition data comprises a value indicative of ambient light. 